package com.zjcloud.jwgl.domain;

import com.zjcloud.common.annotation.Excel;
import com.zjcloud.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 排课约束条件对象 ac_schedule_constraint
 * 
 * @author wxl
 * @date 2024-09-13
 */
public class AcScheduleConstraint extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 约束类型(1教师偏好 2教室容量 3课程冲突 4教师时间冲突 5班级时间冲突 6教室时间冲突 7连堂课 8教师工作量 9课程优先级 10特殊时间要求 11教室设备要求 12班级课程分布) */
    @Excel(name = "约束类型")
    private Integer constraintType;

    /** 约束权重(1-100) */
    @Excel(name = "约束权重")
    private Integer weight;

    /** 关联ID(根据约束类型关联不同实体) */
    @Excel(name = "关联ID")
    private Long relatedId;

    /** 约束参数(JSON格式存储特定约束的参数) */
    @Excel(name = "约束参数")
    private String parameters;

    /** 是否启用(0禁用 1启用) */
    @Excel(name = "是否启用")
    private String enabled;

    /** 学期 */
    @Excel(name = "学期")
    private String semester;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setConstraintType(Integer constraintType) 
    {
        this.constraintType = constraintType;
    }

    public Integer getConstraintType() 
    {
        return constraintType;
    }

    public void setWeight(Integer weight) 
    {
        this.weight = weight;
    }

    public Integer getWeight() 
    {
        return weight;
    }

    public void setRelatedId(Long relatedId) 
    {
        this.relatedId = relatedId;
    }

    public Long getRelatedId() 
    {
        return relatedId;
    }

    public void setParameters(String parameters) 
    {
        this.parameters = parameters;
    }

    public String getParameters() 
    {
        return parameters;
    }

    public void setEnabled(String enabled) 
    {
        this.enabled = enabled;
    }

    public String getEnabled() 
    {
        return enabled;
    }

    public void setSemester(String semester) 
    {
        this.semester = semester;
    }

    public String getSemester() 
    {
        return semester;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("constraintType", getConstraintType())
            .append("weight", getWeight())
            .append("relatedId", getRelatedId())
            .append("parameters", getParameters())
            .append("enabled", getEnabled())
            .append("semester", getSemester())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}